package algorithm.easy;

import java.util.ArrayList;
import java.util.List;

public class ListNode {
      public int val;
      public ListNode next;
      public ListNode() {}
      public ListNode(int val) { this.val = val; }
      public ListNode(int val, ListNode next) { this.val = val; this.next = next; }
      public void print(){
          ListNode tmp = next;
          System.out.print("遍历数据:"+val+",");
          while(tmp!=null){
              System.out.print(tmp.val+",");
              tmp = tmp.next;
          }
          System.out.println("\n");
      }

        public static ListNode init1(){
          ListNode list0 = new ListNode(7);
          ListNode list1 = new ListNode(5,list0);
          ListNode list2 = new ListNode(3,list1);
          ListNode list3  = new ListNode(2,list2);
          ListNode list4 = new ListNode(1,list3);
          list4.print();
          return list4;

      }
      public static ListNode init2(){
            ListNode list5 = new ListNode(10);
            ListNode list6 = new ListNode(9,list5);
            ListNode list7 = new ListNode(8,list6);
            ListNode list8  = new ListNode(6,list7);
            ListNode list9 = new ListNode(4,list8);
            list9.print();
            return list9;
        }
        public static ListNode init83(){
            ListNode list3 = new ListNode(4);
            ListNode list4 = new ListNode(4,list3);
            ListNode list5 = new ListNode(3,list4);
            ListNode list6 = new ListNode(3,list5);
            ListNode list7 = new ListNode(2,list6);
            ListNode list8  = new ListNode(1,list7);
            ListNode list9 = new ListNode(1,list8);
            list9.print();
            return list9;
        }
        public static ListNode init141(){
            ListNode node1 = new ListNode(1);
            ListNode node2 = new ListNode(2);
            ListNode node3 = new ListNode(3);
            ListNode node4 = new ListNode(4);
            ListNode node5 = new ListNode(5);
            ListNode node6 = new ListNode(6);
            node1.next = node2;
            node2.next = node3;
            node3.next = node4;
            node4.next = node5;
            node5.next = node6;
            //node6.next = node3;
            return node1;
        }

    public static List<ListNode> init160(){
        //listA = [4,1,8,4,5], listB = [5,6,1,8,4,5]
        List<ListNode> nodeList = new ArrayList<>();
        ListNode listA = new ListNode();
        ListNode list1 = new ListNode(4);
        ListNode list2 = new ListNode(1);
        ListNode list3  = new ListNode(8);
        ListNode list4 = new ListNode(4);
        ListNode list5 = new ListNode(5);
        listA.next = list1;
        list1.next = list2;
        list2.next = list3;
        list3.next = list4;
        list4.next = list5;
        ListNode listB = new ListNode();

        ListNode list6 = new ListNode(5);
        ListNode list7 = new ListNode(6);
        ListNode list8 = new ListNode(1);
        listB.next = list6;
        list6.next = list7;
        list7.next = list8;
        list8.next = list3;

        nodeList.add(list1);
        nodeList.add(list6);
        System.out.println(list8.next==list2.next);
        return nodeList;

    }
    /*public static ListNode init160_B(){
        ListNode list5 = new ListNode(5);
        ListNode list6 = new ListNode(9,list5);
        ListNode list7 = new ListNode(8,list6);
        ListNode list8  = new ListNode(6,list7);
        ListNode list9 = new ListNode(4,list8);
        list9.print();
        return list9;
    }*/
    }
